# -*- coding: utf-8 -*-
# time: 2025/4/9 15:29
# file: ds_ch02.py
# author: hanson
"""
API:https://modelscope.cn/docs/sdk/dataset
msdatasets作为modelscope数据集的核心管理模块，涵盖了modelscope数据集的主要处理方法和工具。
其主类为MsDataset，用户可以通过MsDataset类提供的方法，实现数据集的加载、上传、删除、转换等操作。
主要包含以下操作：
加载数据集
加载本地数据集
加载远程数据集
上传数据集
上传数据文件
删除数据集文件
数据集的转换

# 加载文件夹
ds = MsDataset.load('imagefolder', data_dir='/path/to/imgs/')
print(next(iter(ds)))
"""
from modelscope import MsDataset
from modelscope.preprocessors import TextClassificationTransformersPreprocessor

# 加载本地 csv文件
# 默认分隔符为英文逗号','
ds = MsDataset.load(r'C:\Users\Administrator\Downloads\iris_test.csv')
print(next(iter(ds))) # 打印第二行一条数据
ds2 = MsDataset.load(r'F:\temp\alpaca-gpt4-data-zh\train.csv',split='train')
print(ds2)
print(next(iter(ds2))) # 打印第二行一条数据
d2=ds2.to_hf_dataset() # 转换为huggingface数据集格式
print(next(iter(d2)))

pt_dataset = ds.to_torch_dataset() # 转换为pytorch数据集格式
print(pt_dataset)
# 直接输入文件路径
#ds = MsDataset.load('xxxx/my_file.json')

# 加载ModelScope中的示例数据集（以Alpaca中文数据集为例）  # 这里好像有点问题，下载到本地
dataset = MsDataset.load(
    'alpaca-gpt4-data-zh',
    namespace="AI-ModelScope",
    subset_name='default',
    split='train',
    cache_dir="./cache" # 指定缓存目录
)
print("-----------------")
hd_data=dataset.to_hf_dataset() # 转换为huggingface数据集格式
print(hd_data)